﻿namespace NMA.Infrastructure.NHibernate.CriteriaExpression.Category.SearchCategory
{
    using NMA.Infrastructure.NHibernate.CriteriaExpression.Category.SearchCategory.Responsibility;

    public class SearchFinderFactory : ISearchFinderFactory
    {
        public SearchCategoryTypeFinder CreatedAllSearch()
        {
            return new AllSearch();
        }

        public SearchCategoryTypeFinder CreatedIdSearch()
        {
            return new IdSearch();
        }

        public SearchCategoryTypeFinder CreatedNameSearch()
        {
            return new NameSearch();
        }

        public SearchCategoryTypeFinder CreatedCreatedUserSearch()
        {
            return new CreatedUserSearch();
        }

        public SearchCategoryTypeFinder CreatedCreatedDateSearch()
        {
            return new CreatedDateSearch();
        }

        public SearchCategoryTypeFinder CreatedIdAndNameSearch()
        {
            return new IdAndNameSearch();
        }

        public SearchCategoryTypeFinder CreatedIdAndCreatedUserSearch()
        {
            return new IdAndCreatedUserSearch();
        }

        public SearchCategoryTypeFinder CreatedIdAndCreatedDateSearch()
        {
            return new IdAndCreatedDateSearch();
        }

        public SearchCategoryTypeFinder CreatedNameAndCreatedUserSearch()
        {
            return new NameAndCreatedUserSearch();
        }

        public SearchCategoryTypeFinder CreatedNameAndCreatedDateSearch()
        {
            return new NameAndCreatedDateSearch();
        }

        public SearchCategoryTypeFinder CreatedCreatedUserAndCreatedDateSearch()
        {
            return new CreatedUserAndCreatedDateSearch();
        }

        public SearchCategoryTypeFinder CreatedIdAndNameAndCreatedUserSearch()
        {
            return new IdAndNameAndCreatedUserSearch();
        }

        public SearchCategoryTypeFinder CreatedIdAndNameAndCreatedDateSearch()
        {
            return new IdAndNameAndCreatedDateSearch();
        }

        public SearchCategoryTypeFinder CreatedIdAndCreatedUserAndCreatedDateSearch()
        {
            return new IdAndCreatedUserAndCreatedDateSearch();
        }

        public SearchCategoryTypeFinder CreatedNameAndCreatedUserAndCreatedDateSearch()
        {
            return new NameAndCreatedUserAndCreatedDateSearch();
        }

        public SearchCategoryTypeFinder CreatedIdAndNameAndCreatedUserAndCreatedDateSearch()
        {
            return new IdAndNameAndCreatedUserAndCreatedDateSearch();
        }
    }
}